package com.browsesoft.baseadapter;

import java.util.Hashtable;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.aote.component.InvalidDataException;
import com.browsesoft.dbtools.DBTools;

/**
 * DBFormModel,类似参数值,有对应关系
 */
public class HTMLDBFormModelAdapterForParamValue extends HTMLDBFormModelAdapter {
	/**
	 * 构造
	 */
	public HTMLDBFormModelAdapterForParamValue() {
		super();
	}

	/**
	 * 页面上传递的参数parentid
	 */
	private String parentid = null;

	/**
	 * 带notsame标记的元素的name属性
	 */
	private String name = null;

	/**
	 * 带notsame标记的元素的value属性
	 */
	private String value = null;

	/**
	 * 处理请求
	 * 
	 * @param request
	 *            请求
	 * @param response
	 *            响应
	 * @throws Exception
	 */
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		super.service(request, response);
		// 得到参数值对应的参数id号
		this.parentid = (String) request.getParameter("parentid");
	}

	/**
	 * 取得判断是否存在的sql语句，如果值为空，条件要修改成 is null
	 */
	private String getSQL() {
		String sql = "select * from " + this.tableName + " where ";
		if (value == null || value.trim().equals("")) {
			return sql + name + " is null ";
		} else {
			return sql + name + "='" + value + "'";
		}
	}

	/**
	 * 此处为宝鸡督办在原有OA增加 更新属性
	 * 
	 * @param ht
	 *            存储属性的哈息表
	 * @throws Exception
	 */
	public void updateAttributes(Hashtable ht) throws Exception {
		// 属性name的值
		name = this.getAttribute();
		// 属性value的值
		value = (String) ht.get(name);
		String sql = this.getSQL();
		String[][] result = null;
		// 如果value不为空
		if (value != null) {
			// 如果parentid='null'
//			if (parentid != null && !parentid.equals("")) {
//				// 得到与name属性和processid属性相同的二维数组
//				result = DBTools.executeQueryWithTableHead(sql
//						+ " and processid='" + parentid + "'");
//			}
//			// 否则
//			else {
//				// 得到与name属性相同的二维数组
//				result = DBTools.executeQueryWithTableHead(sql);
//			}
//			// 如果长度大于0
//			if (result.length > 1) {
//				// 抛出无效数据异常，提示用户记录重复
//				throw new InvalidDataException("记录已存在,请重新输入!");
//			}
			super.updateAttributes(ht);
			// 自动刷新
			this.component.getPage().close(
					"opener.document.forms[0].submit();window.close();");
		}
	}
}